﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DataAccess;
using System.Data.SqlClient;
using System.Data;
using Support.DTO;

namespace DataAccess
{
    public class SistemaNerviosoDAL : BaseSQLDAL
    {
        public int GuardarSistemaNervioso(SistemaNerviosoDTO sn)
        {
            try
            {
                CreateCommand("SistemaNervioso_Guardar", true);
                AddCmdParameter("@Sensorio", string.IsNullOrEmpty(sn.Sensorio) ? "" : sn.Sensorio, ParameterDirection.Input);
                AddCmdParameter("@Lenguaje", string.IsNullOrEmpty(sn.Lenguaje) ? "" : sn.Lenguaje, ParameterDirection.Input);
                AddCmdParameter("@Marcha", string.IsNullOrEmpty(sn.Marcha) ? "" : sn.Marcha, ParameterDirection.Input);
                AddCmdParameter("@Temblor", string.IsNullOrEmpty(sn.Temblor) ? "" : sn.Temblor, ParameterDirection.Input);
                AddCmdParameter("@Taxia", string.IsNullOrEmpty(sn.Taxia) ? "" : sn.Taxia, ParameterDirection.Input);
                AddCmdParameter("@ReflejosFotomotor", string.IsNullOrEmpty(sn.ReflejosFotomotor) ? "" : sn.ReflejosFotomotor, ParameterDirection.Input);
                AddCmdParameter("@ReflejosAcomodacion", string.IsNullOrEmpty(sn.ReflejosAcomodacion) ? "" : sn.ReflejosAcomodacion, ParameterDirection.Input);
                AddCmdParameter("@Osteotendinosos", string.IsNullOrEmpty(sn.OsteoTendinosos) ? "" : sn.OsteoTendinosos, ParameterDirection.Input);
                AddCmdParameter("@Sensibilidad", string.IsNullOrEmpty(sn.Sensibilidad) ? "" : sn.Sensibilidad, ParameterDirection.Input);
                AddCmdParameter("@HistoriaId", sn.HistoriaId, ParameterDirection.Input);

                ExecuteReader();
                Read();

                return Convert.ToInt32(GetOutResult("sistemaNervioso_id"));
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                DisposeCommand();
                //DisposeDataReader();
                CloseConnection();
            }
        }

        public void Modificar(SistemaNerviosoDTO sn)
        {
            try
            {
                CreateCommand("SistemaNervioso_Modificar", true);
                AddCmdParameter("@Sensorio", string.IsNullOrEmpty(sn.Sensorio) ? "" : sn.Sensorio, ParameterDirection.Input);
                AddCmdParameter("@Lenguaje", string.IsNullOrEmpty(sn.Lenguaje) ? "" : sn.Lenguaje, ParameterDirection.Input);
                AddCmdParameter("@Marcha", string.IsNullOrEmpty(sn.Marcha) ? "" : sn.Marcha, ParameterDirection.Input);
                AddCmdParameter("@Temblor", string.IsNullOrEmpty(sn.Temblor) ? "" : sn.Temblor, ParameterDirection.Input);
                AddCmdParameter("@Taxia", string.IsNullOrEmpty(sn.Taxia) ? "" : sn.Taxia, ParameterDirection.Input);
                AddCmdParameter("@ReflejosFotomotor", string.IsNullOrEmpty(sn.ReflejosFotomotor) ? "" : sn.ReflejosFotomotor, ParameterDirection.Input);
                AddCmdParameter("@ReflejosAcomodacion", string.IsNullOrEmpty(sn.ReflejosAcomodacion) ? "" : sn.ReflejosAcomodacion, ParameterDirection.Input);
                AddCmdParameter("@Osteotendinosos", string.IsNullOrEmpty(sn.OsteoTendinosos) ? "" : sn.OsteoTendinosos, ParameterDirection.Input);
                AddCmdParameter("@Sensibilidad", string.IsNullOrEmpty(sn.Sensibilidad) ? "" : sn.Sensibilidad, ParameterDirection.Input);
                AddCmdParameter("@HistoriaId", sn.HistoriaId, ParameterDirection.Input);

                ExecuteReader();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                DisposeCommand();
                //DisposeDataReader();
                CloseConnection();
            }
        }

        public void Eliminar(int historiaId)
        {
            try
            {
                CreateCommand("SistemaNervioso_Eliminar", true);
                AddCmdParameter("@HistoriaId", historiaId, ParameterDirection.Input);

                ExecuteReader();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                DisposeCommand();
                //DisposeDataReader();
                CloseConnection();
            }
        }
    }
}
